/*
 *  common.h
 *  pogostick
 *
 *  Created by chuck@kollar.com on 10/10/09.
 *  Copyright 2009 Charles P. Kollar All rights reserved.
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#import <Foundation/Foundation.h>

//
// All of these wav files are preloaded in menu.m AppController::applicationDidFinishLaunching
#define FOOT_HIT_RELEASE_WAV            @"potpancrash.wav"
#define STICK_JUMP_WAV                  @"boing.wav"
#define STICK_HIT_PILL_WAV              @"pop.wav"
#define GUN_FIRE_WAV                    @"44magnum.wav"
#define OPENING_SOUND_WAV               @"fanfare3.wav"
#define STICK_DIES_WAV                  @"wawawawa.wav"
#define PERSON_DIES_WAV                 @"ouch!.wav"

#define SPACE_GRAVITY                   -200.0f

#define MAX_JOINT_FORCE                 1000000.0f

#define DEFAULT_GROUP_PERSON            1
#define DEFAULT_GROUP_POGOSTICK         2
#define DEFAULT_GROUP_BUG               3

#define START_WITH_LIVES                3
#define MAX_LIVES                       15

#define POINTS_PER_LIFE                 100
#define POINTS_FOR_PERSON_KILL          50
#define POINTS_BULLET_HIT               20
#define POINTS_HITTING_FREE_PILL        25
#define POINTS_HITTING_FIXED_PILL       5
#define POINTS_FOR_COMPLETING           200

// It's a bit silly to think of a radius for a line, but this is what Chipmunk
// Physics uses to determine how "thick" the line is for collision purposes.
// If the line is too thin w.r.t. the object that might collide with it (e.g.
// a bullet of the pogostick's foot) then the object will "go though" the line.
// In the general case, this is not so bad for bullets, but for the pogostick
// this means that it will get stuck in the floor.
#define FLOOR_SEGMENT_RADIUS            40.0f

// http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#Variable-Attributes

enum CollisionTypes {
	kColl_UNUSED,
	kColl_Stick,
	kColl_Foot,
	kColl_Ground,
	kColl_Pill,
    kColl_Pill2,
	kColl_Bullet,
	kColl_ReleasePills,
    kColl_Head,
    kColl_Blood,
    kColl_Bug
};

enum {
	kTagLabelScore = 1,
    kTagLabelEmitter = 2,
    kTagLabelMenu = 3,
    kTagLabelThrustEmitter = 4,
    kTagLabelLife = 5,
    kTagZoomSlider = 6,
    kTagSpringSlider = 7
};

